//package com.foreveross.util;
//
//import com.jfinal.kit.PropKit;
//import org.jsoup.Jsoup;
//import org.jsoup.nodes.Document;
//import org.slf4j.Logger;
//import org.slf4j.LoggerFactory;
//
//import java.io.IOException;
//import java.net.InetAddress;
//import java.util.ArrayList;
//import java.util.LinkedList;
//import java.util.List;
//import java.util.Queue;
//
//public class ProxyUtil {
//
//	private static final Logger LOG = LoggerFactory.getLogger(ProxyUtil.class);
//	// 国内代理队列
//	private static Queue<Object> proxyLocalQueue = new LinkedList<Object>();
//	// 国外代理队列
//	private static Queue<Object> proxyOverSeaQueue = new LinkedList<Object>();
//
//	private static String cid;
//
//	static {
//		PropKit.use("config.properties");
//		cid = PropKit.get("client_id");
//	}
//
//	public static ProxyBean getHomeProxyBean() {
//		ProxyBean proxyBean = null;
//		// 队列里没有IP 调用接口获取 50个IP
//		if (proxyLocalQueue.isEmpty()) {
//			List<ProxyBean> list = getProxyByHttpClient(cid, 30, 0);
//			if (null != list && list.size() > 0) {
//				for (ProxyBean proxy : list) {
//					QueueUtil.putQueue(proxyLocalQueue, proxy);
//				}
//			}
//
//		}
//		proxyBean = (ProxyBean) QueueUtil.pollQueue(proxyLocalQueue);
//		return proxyBean;
//
//	}
//
//	public static ProxyBean getOverSeaProxyBean() {
//		ProxyBean proxyBean = null;
//		// 队列里没有IP 调用接口获取 50个IP
//		if (proxyLocalQueue.isEmpty()) {
//			List<ProxyBean> list = getProxyByHttpClient(cid, 30, 1);
//			if (null != list && list.size() > 0) {
//				for (ProxyBean proxy : list) {
//					QueueUtil.putQueue(proxyLocalQueue, proxy);
//				}
//			}
//
//		}
//		proxyBean = (ProxyBean) QueueUtil.pollQueue(proxyLocalQueue);
//		return proxyBean;
//
//	}
//
//	/**
//	 * 远程获取 代理个数并封装List
//	 * 
//	 * @param cid
//	 * @param proxyNum
//	 * @param loc
//	 * @return
//	 */
//	public static List<ProxyBean> getProxyByHttpClient(String cid,
//			int proxyNum, int loc) {
//		List<ProxyBean> list = new ArrayList<ProxyBean>();
//		String url = "http://114.112.98.141:8082/refer/getproxy.aspx?cid="
//				+ cid + "&num=" + proxyNum + "&loc=" + loc;
//
//		try {
//			LOG.info("远程获取 代理个数并封装List");
//			Document document = Jsoup.connect(url).data().get();
//
//			String content = Jsoup.parse(document.toString(), "utf-8").body()
//					.text();
//			// System.out.println("content:"+content);
//			String[] proxys = content.split(" ");
//			if (null != proxys && proxys.length > 0) {
//				for (String proxy : proxys) {
//					String[] pb = proxy.split(":");
//					ProxyBean proxyBean = new ProxyBean();
//					proxyBean.setIp(pb[0]);
//					proxyBean.setPort(Integer.parseInt(pb[1]));
//					list.add(proxyBean);
//				}
//			}
//
//		} catch (IOException e) {
//			// e.printStackTrace();
//			LOG.error("接口获取IP失败，检查接口 url:" + url + " error:" + e.getMessage());
//		}
//
//		System.out.println("proxys:" + list);
//		return list;
//	}
//
//	public ProxyBean getLocalProxy() {
//		ProxyBean proxy = new ProxyBean();
//		InetAddress ia = null;
//		try {
//			ia = ia.getLocalHost();
//
//			String localname = ia.getHostName();
//			String localip = ia.getHostAddress();
//
//			proxy.setIp(localip);
//			proxy.setPort(80);
//
//		} catch (Exception e) {
//			// TODO Auto-generated catch block
//			e.printStackTrace();
//		}
//		return proxy;
//	}
//
//	// public static ProxyBean getProxyByHttpClient(List<ProxyBean> list) {
//	// Random rand = new Random();
//	// int num = rand.nextInt(list.size() - 1);
//	// return list.get(num);
//	// }
//	//
//	// public static List<ProxyBean> getAllProxy() throws Exception {
//	// BufferedReader reader = new BufferedReader(new FileReader(
//	// "src/main/resources/proxyIP.txt"));
//	// String line = "";
//	// List<ProxyBean> list = new ArrayList<ProxyBean>();
//	// while ((line = reader.readLine()) != null) {
//	// String[] str = line.split(":");
//	// ProxyBean proxy = new ProxyBean();
//	// proxy.setIp(str[0]);
//	// proxy.setPort(Integer.parseInt(str[1]));
//	// list.add(proxy);
//	// }
//	// reader.close();
//	// return list;
//	// }
//	//
//	// public static ProxyBean getRandomProxy() throws Exception {
//	// // System.err.println("--------------更换了proxy ip-------------");
//	// Random rand = new Random();
//	// List<ProxyBean> list = getAllProxy();
//	// int num = rand.nextInt(list.size() - 1);
//	// return list.get(num);
//	// }
//	//
//	// public static ProxyBean getRandomGoogleProxy() throws Exception {
//	// // System.err.println("--------------更换了proxy ip-------------");
//	// Random rand = new Random();
//	// List<ProxyBean> list = getAllGoogleProxy();
//	// int num = rand.nextInt(list.size() - 1);
//	// return list.get(num);
//	// }
//	//
//	// public static List<ProxyBean> getAllGoogleProxy() throws Exception {
//	// BufferedReader reader = new BufferedReader(new FileReader(
//	// "src/main/resources/google_proxyIP.txt"));
//	// String line = "";
//	// List<ProxyBean> list = new ArrayList<ProxyBean>();
//	// while ((line = reader.readLine()) != null) {
//	// String[] str = line.split(":");
//	// ProxyBean proxy = new ProxyBean();
//	// proxy.setIp(str[0]);
//	// proxy.setPort(Integer.parseInt(str[1]));
//	// list.add(proxy);
//	// }
//	// reader.close();
//	// return list;
//	// }
//
//	public static void main(String[] args) throws Exception {
//		// List list = getProxyByHttpClient("1",10,0);
//		// for (int i = 0; i < 100; i++) {
//		// System.out.println(getProxyByHttpClient(list).getIp());
//		// }
//		//
//		// Random rand = new Random();
//		// int num = rand.nextInt(10 - 1);
//		for (int i = 0; i < 100; i++) {
////			System.out.println(getLocalProxyBean());
//			Thread.sleep(1000);
//		}
//
//	}
//
//	public static class ProxyBean {
//		private String ip;
//		private int port;
//
//		public String getIp() {
//			return ip;
//		}
//
//		public void setIp(String ip) {
//			this.ip = ip;
//		}
//
//		public int getPort() {
//			return port;
//		}
//
//		public void setPort(int port) {
//			this.port = port;
//		}
//
//	}
//
//}
